<?php
namespace core;

use PDO;
// require 'common.php';
// require 'Query.php';

//定义常量
// define('CONFIG', require '../config.php');

// 数据库操作入口类
class Db
{
    // 1.连接对象
    protected static PDO $db;
    // 2.连接数据库
    public static function connect(string $dsn,string $username, string $password)
    {
        static::$db = new PDO($dsn, $username, $password);
    }
    // 3.静态委托
    public static function __callStatic($name, $arguments)
    {
        // 3.1 连接数库
        $dsn = CONFIG['database']['type'].':dbname='.CONFIG['database']['dbname'];
        // $dsn = 'mysql:host=127.0.0.1;dbname=tmvc;chartset=utf8;port=3306';
        $username = CONFIG['database']['username'];
        $password = CONFIG['database']['password'];
        static::connect($dsn, $username, $password);
        // static::connect('mysql:tmvc', 'root', 'root');
        // 3.2 实例化数据库操作类
        $query = new Query(static::$db);
        return call_user_func_array([$query,$name], $arguments);
    }
}
//query
// dump(Db::table('user')
// d(Db::table('user')
// ->field('id,uname,email')
// ->limit(5)
// ->page(1)
// // ->order('id','asc')
// ->select());

// dump(Db::table('user')
// ->field('id,uname,email')
// ->where('id=2')
// ->find());


//insert
// $data = [
//     'uname'=>'祝老师1',
//     'sex'=>0,
//     'email'=>'23wree@qq.com',
//     'password'=>md5('345')
// ];
// dump(Db::table('user')
// ->insert($data));

//update
// dump(Db::table('user')
// ->where('id=17')
// ->update($data));

//delete
// dump(Db::table('user')
// ->where('id=17')
// ->delete());
?>